# -*- coding:utf-8 -*-

import time


def dynamicLoading(driver):
    # 滑动滚动条的js代码
    js1 = 'window.scrollTo(0, document.body.scrollHeight)'
    # 获取高低的js代码
    js2 = "return action=document.body.scrollHeight"

    # 获取当前窗口的内容可视区域
    height = driver.execute_script(js2)

    # 向下滚动2次
    driver.execute_script(js1)
    time.sleep(1)
    driver.execute_script(js1)

    # 定义初始时间戳（秒）
    t1 = int(time.time())
    time.sleep(1)
    # 定义循环标识，用于终止while循环
    status = True

    # 重试次数
    num = 0

    while status:
        # 获取当前时间戳（秒）
        t2 = int(time.time())
        # 判断时间初始时间戳和当前时间戳相差是否大于30秒，小于30秒则下拉滚动条
        if t2 - t1 < 10:
            new_height = driver.execute_script(js2)
            time.sleep(1)
            if new_height > height:
                # 向下滚动
                driver.execute_script(js1)

                # 重置初始页面高度
                height = new_height
                # 重置初始时间戳，重新计时
                t1 = int(time.time())
        # elif num < 2:  # 当超过30秒页面高度仍然没有更新时，进入重试逻辑，重试3次，每次等待30秒
        #     time.sleep(3)
        #     num = num + 1
        else:  # 超时并超过重试次数，程序结束跳出循环，并认为页面已经加载完毕！
            print("滚动条已经处于页面最下方！")
            status = False
            # 滚动条调整至页面顶部
            # driver.execute_script('window.scrollTo(0, 0)')
            break
